﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace ServiceLayer.Forms
{
    using HelpSystem;

    /// <summary>
    /// Класс описывающий форму для редактирования и просмотра данных транспортного средства.
    /// </summary>
    public partial class FormTransport : Form
    {
        private CDataBase DataBase = null;
        private DataRow Row = null;
        /// <summary>
        /// Конструктор создающий форму отображающую данные о транспортном средстве
        /// </summary>
        /// <param name="DB">Объект базы данных</param>
        /// <param name="TransportID">Идентификатор транспорта</param>
        public FormTransport(CDataBase DB, Int32 TransportID)
        {
            InitializeComponent();

            if (DB == null || !DB.IsOpen)
                Documentation.ShowError("Окно редактирования данных транспорта не может быть отображено. Подключение не установлено.");
            
            DataBase = DB;
            Row = DB.Transport.Table.Rows.Find(TransportID);
            Row.BeginEdit();
            //GovNumber
            tbGovNumber.Text = (string)Row["gov_number"];
            BindingSource BindTransportType = new BindingSource();
            BindTransportType.DataSource = DataBase.TransportTypes.Table;
            cbTransportType.DataSource = BindTransportType;
            cbTransportType.ValueMember = "transport_type_id";
            cbTransportType.DisplayMember = "transport_type";
            cbTransportType.SelectedValue = (int)Row["transport_type_id"];
            tbVIN.Text = (string)Row["vin"];
            dtDateTO.Value = (DateTime)Row["date_to"];
            Row.CancelEdit();
            Row.EndEdit();
        }

        private void FormTransport_Load(object sender, EventArgs e)
        {

        }

        private void miClose_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void tbGovNumber_TextChanged(object sender, EventArgs e)
        {
            Row["gov_number"] = (string)tbGovNumber.Text;
            this.Text = tbGovNumber.Text;
        }

        private void cbTransportType_TextChanged(object sender, EventArgs e)
        {
            if (cbTransportType.SelectedValue != null)
                Row["transport_type_id"] = (int) cbTransportType.SelectedValue;
        }

        private void dtDateTO_ValueChanged(object sender, EventArgs e)
        {
            Row["date_to"] = dtDateTO.Value; 
        }

        private void tbVIN_Leave(object sender, EventArgs e)
        {
            Row["vin"] = tbVIN.Text;
        }

        private void tbGovNumber_Leave(object sender, EventArgs e)
        {
            Row["gov_number"] = tbGovNumber.Text;
        }
    }
}
